import { _ as _export_sfc, m as mpMixin, a as mixin, j as resolveEasycom, J as __easycom_0, k as resolveDynamicComponent, c as createBlock, e as createCommentVNode, o as openBlock, w as withCtx, b as createVNode, p as index$q, n as normalizeStyle, s as index$i, t as createTextVNode, u as toDisplayString, i as index$g, r as renderSlot } from './index-Cc4oxzDN.js';

const props = {
	props: {
		// 内置图标名称，或图片路径，建议绝对路径
		icon: {
			type: String,
			default: ''
		},
		// 提示文字
		text: {
			type: String,
			default: ''
		},
		// 文字颜色
		textColor: {
			type: String,
			default: '#c0c4cc'
		},
		// 文字大小
		textSize: {
			type: [String, Number],
			default: 14
		},
		// 图标的颜色
		iconColor: {
			type: String,
			default: '#c0c4cc'
		},
		// 图标的大小
		iconSize: {
			type: [String, Number],
			default: 90
		},
		// 选择预置的图标类型
		mode: {
			type: String,
			default: 'data'
		},
		//  图标宽度，单位px
		width: {
			type: [String, Number],
			default: 160
		},
		// 图标高度，单位px
		height: {
			type: [String, Number],
			default: 160
		},
		// 是否显示组件
		show: {
			type: Boolean,
			default: true
		},
		// 组件距离上一个元素之间的距离，默认px单位
		marginTop: {
			type: [String, Number],
			default: 0
		},
		...uni.$uv?.props?.empty
	}
};

/**
	 * empty 内容为空
	 * @description 该组件用于需要加载内容，但是加载的第一页数据就为空，提示一个"没有内容"的场景， 我们精心挑选了十几个场景的图标，方便您使用。
	 * @tutorial https://www.uvui.cn/components/empty.html
	 * @property {String}			icon		内置图标名称，或图片路径，建议绝对路径
	 * @property {String}			text		提示文字
	 * @property {String}			textColor	文字颜色 (默认 '#c0c4cc' )
	 * @property {String | Number}	textSize	文字大小 （默认 14 ）
	 * @property {String}			iconColor	图标的颜色 （默认 '#c0c4cc' ）
	 * @property {String | Number}	iconSize	图标的大小 （默认 90 ）
	 * @property {String}			mode		选择预置的图标类型 （默认 'data' ）
	 * @property {String | Number}	width		图标宽度，单位px （默认 160 ）
	 * @property {String | Number}	height		图标高度，单位px （默认 160 ）
	 * @property {Boolean}			show		是否显示组件 （默认 true ）
	 * @property {String | Number}	marginTop	组件距离上一个元素之间的距离，默认px单位 （默认 0 ）
	 * @property {Object}			customStyle	定义需要用到的外部样式
	 * 
	 * @event {Function} click 点击组件时触发
	 * @event {Function} close 点击关闭按钮时触发
	 * @example <uv-empty text="所谓伊人，在水一方" mode="list"></uv-empty>
	 */
	const _sfc_main = {
		name: "uv-empty",
		mixins: [mpMixin, mixin, props],
		data() {
			return {
				icons: {
					car: '购物车为空',
					page: '页面不存在',
					search: '没有搜索结果',
					address: '没有收货地址',
					'wifi-off': '没有WiFi',
					order: '订单为空',
					coupon: '没有优惠券',
					favor: '暂无收藏',
					permission: '无权限',
					history: '无历史记录',
					news: '无新闻列表',
					message: '消息列表为空',
					list: '列表为空',
					data: '数据为空',
					comment: '暂无评论',
				}
			}
		},
		computed: {
			// 组件样式
			emptyStyle() {
				const style = {};
				style.marginTop = this.$uv.addUnit(this.marginTop);
				// 合并customStyle样式，此参数通过mixin中的props传递
				return this.$uv.deepMerge(style, this.$uv.addStyle(this.customStyle))
			},
			// 文本样式
			textStyle() {
				const style = {};
				style.color = this.textColor;
				style.fontSize = this.$uv.addUnit(this.textSize);
				return style
			},
			// 判断icon是否图片路径
			isImg() {
				const isBase64 = this.icon.indexOf('data:') > -1 && this.icon.indexOf('base64') > -1;
				return this.icon.indexOf('/') !== -1 || isBase64;
			}
		}
	};

function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_uv_icon = resolveEasycom(resolveDynamicComponent("uv-icon"), __easycom_0);
  const _component_v_uni_image = index$q;
  const _component_v_uni_text = index$i;
  const _component_v_uni_view = index$g;

  return (_ctx.show)
    ? (openBlock(), createBlock(_component_v_uni_view, {
        key: 0,
        class: "uv-empty",
        style: normalizeStyle([$options.emptyStyle])
      }, {
        default: withCtx(() => [
          (!$options.isImg)
            ? (openBlock(), createBlock(_component_uv_icon, {
                key: 0,
                name: _ctx.mode === 'message' ? 'chat' : `empty-${_ctx.mode}`,
                size: _ctx.iconSize,
                color: _ctx.iconColor,
                "margin-top": "14"
              }, null, 8, ["name", "size", "color"]))
            : (openBlock(), createBlock(_component_v_uni_image, {
                key: 1,
                style: normalizeStyle({
				width: _ctx.$uv.addUnit(_ctx.width),
				height: _ctx.$uv.addUnit(_ctx.height)
			}),
                src: _ctx.icon,
                mode: "widthFix"
              }, null, 8, ["style", "src"])),
          createVNode(_component_v_uni_text, {
            class: "uv-empty__text",
            style: normalizeStyle([$options.textStyle])
          }, {
            default: withCtx(() => [
              createTextVNode(toDisplayString(_ctx.text ? _ctx.text : $data.icons[_ctx.mode]), 1)
            ]),
            _: 1
          }, 8, ["style"]),
          createVNode(_component_v_uni_view, { class: "uv-empty__wrap" }, {
            default: withCtx(() => [
              renderSlot(_ctx.$slots, "default", {}, undefined, true)
            ]),
            _: 3
          })
        ]),
        _: 3
      }, 8, ["style"]))
    : createCommentVNode("", true)
}
const __easycom_4 = /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__scopeId',"data-v-d585060f"]]);

export { __easycom_4 as _ };
